Ovo je domaći zadatak nakon dvodnevnog DS boot camp-a.
Koristićemo podatke o svim učesnicima na olimpijadama.
Podaci se nalaze na linku: https://github.com/TanjaKec/RMarkdown4RR
Učitajmo podatke iz csv fajla
athlete_events <- read.csv(here(params$data),encoding = "UTF-8")
Pogledajmo strukturu podataka koristeći funkciju glimpse().
glimpse(athlete_events)
## Rows: 271,116
## Columns: 15
## $ ID <int> 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, ...
## $ Name <fct> A Dijiang, A Lamusi, Gunnar Nielsen Aaby, Edgar Lindenau Aab...
## $ Sex <fct> M, M, M, M, F, F, F, F, F, F, M, M, M, M, M, M, M, M, M, M, ...
## $ Age <int> 24, 23, 24, 34, 21, 21, 25, 25, 27, 27, 31, 31, 31, 31, 33, ...
## $ Height <int> 180, 170, NA, NA, 185, 185, 185, 185, 185, 185, 188, 188, 18...
## $ Weight <dbl> 80, 60, NA, NA, 82, 82, 82, 82, 82, 82, 75, 75, 75, 75, 75, ...
## $ Team <fct> China, China, Denmark, Denmark/Sweden, Netherlands, Netherla...
## $ NOC <fct> CHN, CHN, DEN, DEN, NED, NED, NED, NED, NED, NED, USA, USA, ...
## $ Games <fct> 1992 Summer, 2012 Summer, 1920 Summer, 1900 Summer, 1988 Win...
## $ Year <int> 1992, 2012, 1920, 1900, 1988, 1988, 1992, 1992, 1994, 1994, ...
## $ Season <fct> Summer, Summer, Summer, Summer, Winter, Winter, Winter, Wint...
## $ City <fct> Barcelona, London, Antwerpen, Paris, Calgary, Calgary, Alber...
## $ Sport <fct> Basketball, Judo, Football, Tug-Of-War, Speed Skating, Speed...
## $ Event <fct> "Basketball Men's Basketball", "Judo Men's Extra-Lightweight...
## $ Medal <fct> NA, NA, NA, Gold, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
U ovom primeru ćemo selektovati sve varijable koje se završavaju na slovo t, a počinju slovom s. Napravićemo data frame myData koji zadovoljava traženi uslov:
myData <- select(athlete_events, ends_with("t"))%>%
select(,starts_with("S"))
head(myData, n = 3)
| Sport |
|---|
| Basketball |
| Judo |
| Football |
Dakle, prvo smo korišćenjem funkcije select() izdvojili sve varijable koje se završavaju slovom t (ends_with).
Zatim smo rezultat te operacije prosledili drugoj select() funkciji u kojoj smo sada izdvojili one varijable koje počinju slovom S (starts_with).
Ovaj rezultat smo upisali u data frame myData.
Na kraju smo korišćenjem funkcije head() prikazali prva tri reda našeg data frame-a.
Potrebno je da kreiramo varijablu Body Mass Index (BMI) (\(kg/m^2\)) koja se računa po sledećoj formuli: \[BMI=Weight/(Height/100)^2\] Za ovu operaciju koristi se funkcija mutate().
Našem data frame-u athlete_events dodaćemo varijablu BMI:
athlete_events <- mutate(athlete_events,BMI=Weight/(Height/100)^2)
head(athlete_events,5)
| ID | Name | Sex | Age | Height | Weight | Team | NOC | Games | Year | Season | City | Sport | Event | Medal | BMI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | A Dijiang | M | 24 | 180 | 80 | China | CHN | 1992 Summer | 1992 | Summer | Barcelona | Basketball | Basketball Men’s Basketball | NA | 24.69136 |
| 2 | A Lamusi | M | 23 | 170 | 60 | China | CHN | 2012 Summer | 2012 | Summer | London | Judo | Judo Men’s Extra-Lightweight | NA | 20.76125 |
| 3 | Gunnar Nielsen Aaby | M | 24 | NA | NA | Denmark | DEN | 1920 Summer | 1920 | Summer | Antwerpen | Football | Football Men’s Football | NA | NA |
| 4 | Edgar Lindenau Aabye | M | 34 | NA | NA | Denmark/Sweden | DEN | 1900 Summer | 1900 | Summer | Paris | Tug-Of-War | Tug-Of-War Men’s Tug-Of-War | Gold | NA |
| 5 | Christine Jacoba Aaftink | F | 21 | 185 | 82 | Netherlands | NED | 1988 Winter | 1988 | Winter | Calgary | Speed Skating | Speed Skating Women’s 500 metres | NA | 23.95909 |
U ovom zadatku ćemo napraviti dva nova data frame-a, koje ćemo dobiti filtriranjem podataka iz data frame-a athlete_events, korišćenjem funkcije filter().
Prvi data frame olympicSR treba da sadrži podatke o svim učesnicima iz Srbije:
olympicSR <- filter(athlete_events,Team=="Serbia")
head(olympicSR,5)
| ID | Name | Sex | Age | Height | Weight | Team | NOC | Games | Year | Season | City | Sport | Event | Medal | BMI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2516 | Aleksandar Aleksi | M | 20 | 188 | 89 | Serbia | SRB | 2012 Summer | 2012 | Summer | London | Canoeing | Canoeing Men’s Kayak Fours, 1,000 metres | NA | 25.18108 |
| 2517 | Milan Aleksi | M | 26 | 193 | 96 | Serbia | SRB | 2012 Summer | 2012 | Summer | London | Water Polo | Water Polo Men’s Water Polo | Bronze | 25.77250 |
| 2517 | Milan Aleksi | M | 30 | 193 | 96 | Serbia | SRB | 2016 Summer | 2016 | Summer | Rio de Janeiro | Water Polo | Water Polo Men’s Water Polo | Gold | 25.77250 |
| 5346 | Andrea Arsovi | F | 25 | 165 | 61 | Serbia | SRB | 2012 Summer | 2012 | Summer | London | Shooting | Shooting Women’s Air Rifle, 10 metres | NA | 22.40588 |
| 5346 | Andrea Arsovi | F | 25 | 165 | 61 | Serbia | SRB | 2012 Summer | 2012 | Summer | London | Shooting | Shooting Women’s Small-Bore Rifle, Three Positions, 50 metres | NA | 22.40588 |
Drugi data frame olympicSR21c treba da sadrži podatke o svim učesnicima iz Srbije koji su učestvovali na olimpijadama počev od 2000. godine i koji imaju preko 100Kg težine i preko 2m visine:
olympicSR21c <- filter(olympicSR,Year>=2000 & Weight>100 & Height>200)
head(olympicSR21c,5)
| ID | Name | Sex | Age | Height | Weight | Team | NOC | Games | Year | Season | City | Sport | Event | Medal | BMI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 11656 | Stefan Birevi | M | 26 | 210 | 104 | Serbia | SRB | 2016 Summer | 2016 | Summer | Rio de Janeiro | Basketball | Basketball Men’s Basketball | Silver | 23.58277 |
| 16420 | Aleksandar Bundalo | M | 24 | 205 | 109 | Serbia | SRB | 2014 Winter | 2014 | Winter | Sochi | Bobsleigh | Bobsleigh Men’s Two | NA | 25.93694 |
| 39748 | Andrija Geri | M | 31 | 203 | 101 | Serbia | SRB | 2008 Summer | 2008 | Summer | Beijing | Volleyball | Volleyball Men’s Volleyball | NA | 24.50921 |
| 55550 | Nikola Joki | M | 21 | 209 | 115 | Serbia | SRB | 2016 Summer | 2016 | Summer | Rio de Janeiro | Basketball | Basketball Men’s Basketball | Silver | 26.32724 |
| 56863 | Nikola Kalini | M | 24 | 202 | 102 | Serbia | SRB | 2016 Summer | 2016 | Summer | Rio de Janeiro | Basketball | Basketball Men’s Basketball | Silver | 24.99755 |
Za sortiranje podataka u data frame-u koristi se funkcija arrange().
Sortirajmo podatke u data frame-u olympicSR21c po rastućoj vrednosti varijable Height:
olympicSR21c <- arrange(olympicSR21c,Height)
head(olympicSR21c,5)
| ID | Name | Sex | Age | Height | Weight | Team | NOC | Games | Year | Season | City | Sport | Event | Medal | BMI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 56863 | Nikola Kalini | M | 24 | 202 | 102 | Serbia | SRB | 2016 Summer | 2016 | Summer | Rio de Janeiro | Basketball | Basketball Men’s Basketball | Silver | 24.99755 |
| 74340 | Duan Mandi | M | 18 | 202 | 105 | Serbia | SRB | 2012 Summer | 2012 | Summer | London | Water Polo | Water Polo Men’s Water Polo | Bronze | 25.73277 |
| 74340 | Duan Mandi | M | 22 | 202 | 105 | Serbia | SRB | 2016 Summer | 2016 | Summer | Rio de Janeiro | Water Polo | Water Polo Men’s Water Polo | Gold | 25.73277 |
| 39748 | Andrija Geri | M | 31 | 203 | 101 | Serbia | SRB | 2008 Summer | 2008 | Summer | Beijing | Volleyball | Volleyball Men’s Volleyball | NA | 24.50921 |
| 16420 | Aleksandar Bundalo | M | 24 | 205 | 109 | Serbia | SRB | 2014 Winter | 2014 | Winter | Sochi | Bobsleigh | Bobsleigh Men’s Two | NA | 25.93694 |
Sortirajmo sada podatke u data frame-u olympicSR21c po opadajućoj vrednosti varijable Height:
olympicSR21c <- arrange(olympicSR21c,desc(Height))
head(olympicSR21c,5)
| ID | Name | Sex | Age | Height | Weight | Team | NOC | Games | Year | Season | City | Sport | Event | Medal | BMI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 98227 | Miroslav Raduljica | M | 28 | 213 | 130 | Serbia | SRB | 2016 Summer | 2016 | Summer | Rio de Janeiro | Basketball | Basketball Men’s Basketball | Silver | 28.65393 |
| 115246 | Vladimir timac | M | 28 | 211 | 112 | Serbia | SRB | 2016 Summer | 2016 | Summer | Rio de Janeiro | Basketball | Basketball Men’s Basketball | Silver | 25.15667 |
| 11656 | Stefan Birevi | M | 26 | 210 | 104 | Serbia | SRB | 2016 Summer | 2016 | Summer | Rio de Janeiro | Basketball | Basketball Men’s Basketball | Silver | 23.58277 |
| 55550 | Nikola Joki | M | 21 | 209 | 115 | Serbia | SRB | 2016 Summer | 2016 | Summer | Rio de Janeiro | Basketball | Basketball Men’s Basketball | Silver | 26.32724 |
| 16420 | Aleksandar Bundalo | M | 24 | 205 | 109 | Serbia | SRB | 2014 Winter | 2014 | Winter | Sochi | Bobsleigh | Bobsleigh Men’s Two | NA | 25.93694 |
Iskoristimo sortiranje kako bismo pronašli najmlađeg i najstarijeg sportistu u data frame-u olympicSR.
Kako bismo pronašli najmlađeg sportistu, sortiraćemo date frame u rastućem redosledu po varijabli Age i prikazati samo prvi red:
olympicSR <- arrange(olympicSR,Age)
head(olympicSR,1)
| ID | Name | Sex | Age | Height | Weight | Team | NOC | Games | Year | Season | City | Sport | Event | Medal | BMI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 23792 | Anja Crevar | F | 16 | 164 | 49 | Serbia | SRB | 2016 Summer | 2016 | Summer | Rio de Janeiro | Swimming | Swimming Women’s 200 metres Individual Medley | NA | 18.21832 |
slično, da bismo pronašli najstarijeg sportistu, sortiraćemo date frame u opadajućem redosledu po varijabli Age i prikazati samo prvi red:
olympicSR <- arrange(olympicSR,desc(Age))
head(olympicSR,1)
| ID | Name | Sex | Age | Height | Weight | Team | NOC | Games | Year | Season | City | Sport | Event | Medal | BMI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 108383 | Jasna ekari (Brajkovi-) | F | 46 | 175 | 70 | Serbia | SRB | 2012 Summer | 2012 | Summer | London | Shooting | Shooting Women’s Sporting Pistol, 25 metres | NA | 22.85714 |
| Objective | Function | Description |
|---|---|---|
| basic |
sum(x)
|
Sum of vector x |
| centre |
mean(x)
|
Mean (average) of vector x |
median(x)
|
Median of vector x | |
| spread |
sd(x)
|
Standard deviation of vector x |
quantile(x, probs)
|
Quantile of vector x | |
range(x)
|
Range of vector x | |
diff(range(x)))
|
Width of the range of vector x | |
min(x)
|
Min of vector x | |
max(x)
|
Max of vector x | |
abs(x)
|
Absolute value of a number x |
U našem primeru ćemo sumirati podatke data frame-a olympicSR.
Prvo ćemo pronaći dve sumarne varijable: max_Age i max_BMI:
summarise(olympicSR,max_Age=max(Age),max_BMI=max(BMI))
| max_Age | max_BMI |
|---|---|
| 46 | 40.03546 |
Sada pronađimo mean_Age i mean_BMI:
summarise(olympicSR,mean_Age=mean(Age),mean_BMI=mean(BMI))
| mean_Age | mean_BMI |
|---|---|
| 26.38918 | 23.34068 |
Prikažimo tabelarno broj osvojenih medalja na svim olimpijskim igrama po timovima:
athlete_events %>%
filter(!is.na(Medal)) %>%
group_by(NOC, Medal) %>%
summarize(cases=n()) %>%
DT::datatable()
Napravimo novi data frame Countries koji će u jednom redu prikazati sledeće podatke: Team, NOC, Year, Athletes, Gold, Silver, Bronze
countries <- athlete_events %>%
mutate(Medal=forcats::fct_explicit_na(Medal,na_level = "NoMedal")) %>%
group_by(Team, NOC, Year, Medal) %>%
summarize(Cases=n()) %>%
spread(,key = "Medal", value = "Cases") %>%
mutate(Athletes=sum(Gold,Silver,Bronze,NoMedal,na.rm = TRUE))
countries %>%
DT::datatable()
Pokušajmo da prikažemo zemlje učesnice svih olimpijada sortirane po broju bodova koje dobijamo sledećom formulom: \[Points=3*Gold + 2*Silver + Bronze\]
countries <- mutate(countries,Points=sum(3*Gold,2*Silver,Bronze,na.rm = TRUE)) %>%
group_by(NOC) %>%
summarize(
Athletes=sum(Athletes,na.rm = TRUE),
Gold=sum(Gold,na.rm = TRUE),
Silver=sum(Silver,na.rm = TRUE),
Bronze=sum(Bronze,na.rm = TRUE),
Points=sum(Points,na.rm = TRUE)
)
arrange(countries,desc(Points)) %>%
DT::datatable()
Sada ćemo na mapi sveta prikazati broj poena po zemljama.
U tu svrhu ćemo koristiti pakete rnaturalearth i rnaturalearthdata
library("rnaturalearth")
library("rnaturalearthdata")
Iz ovih paketa ćemo kreirati data frame world:
world <- ne_countries(scale = "medium", returnclass = "sf")
class(world)
## [1] "sf" "data.frame"
Pogledajmo šta sadrži ovaj data frame:
glimpse(world)
## Rows: 241
## Columns: 64
## $ scalerank <int> 3, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 1, 5, 3, 1, 1, 1, 1, 1,...
## $ featurecla <chr> "Admin-0 country", "Admin-0 country", "Admin-0 country",...
## $ labelrank <dbl> 5, 3, 3, 6, 6, 6, 6, 4, 2, 6, 4, 4, 5, 6, 6, 2, 4, 5, 6,...
## $ sovereignt <chr> "Netherlands", "Afghanistan", "Angola", "United Kingdom"...
## $ sov_a3 <chr> "NL1", "AFG", "AGO", "GB1", "ALB", "FI1", "AND", "ARE", ...
## $ adm0_dif <dbl> 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0,...
## $ level <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,...
## $ type <chr> "Country", "Sovereign country", "Sovereign country", "De...
## $ admin <chr> "Aruba", "Afghanistan", "Angola", "Anguilla", "Albania",...
## $ adm0_a3 <chr> "ABW", "AFG", "AGO", "AIA", "ALB", "ALD", "AND", "ARE", ...
## $ geou_dif <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
## $ geounit <chr> "Aruba", "Afghanistan", "Angola", "Anguilla", "Albania",...
## $ gu_a3 <chr> "ABW", "AFG", "AGO", "AIA", "ALB", "ALD", "AND", "ARE", ...
## $ su_dif <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
## $ subunit <chr> "Aruba", "Afghanistan", "Angola", "Anguilla", "Albania",...
## $ su_a3 <chr> "ABW", "AFG", "AGO", "AIA", "ALB", "ALD", "AND", "ARE", ...
## $ brk_diff <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
## $ name <chr> "Aruba", "Afghanistan", "Angola", "Anguilla", "Albania",...
## $ name_long <chr> "Aruba", "Afghanistan", "Angola", "Anguilla", "Albania",...
## $ brk_a3 <chr> "ABW", "AFG", "AGO", "AIA", "ALB", "ALD", "AND", "ARE", ...
## $ brk_name <chr> "Aruba", "Afghanistan", "Angola", "Anguilla", "Albania",...
## $ brk_group <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ abbrev <chr> "Aruba", "Afg.", "Ang.", "Ang.", "Alb.", "Aland", "And."...
## $ postal <chr> "AW", "AF", "AO", "AI", "AL", "AI", "AND", "AE", "AR", "...
## $ formal_en <chr> "Aruba", "Islamic State of Afghanistan", "People's Repub...
## $ formal_fr <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ note_adm0 <chr> "Neth.", NA, NA, "U.K.", NA, "Fin.", NA, NA, NA, NA, "U....
## $ note_brk <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Multiple cl...
## $ name_sort <chr> "Aruba", "Afghanistan", "Angola", "Anguilla", "Albania",...
## $ name_alt <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ mapcolor7 <dbl> 4, 5, 3, 6, 1, 4, 1, 2, 3, 3, 4, 4, 1, 7, 2, 1, 3, 1, 2,...
## $ mapcolor8 <dbl> 2, 6, 2, 6, 4, 1, 4, 1, 1, 1, 5, 5, 2, 5, 2, 2, 1, 6, 2,...
## $ mapcolor9 <dbl> 2, 8, 6, 6, 1, 4, 1, 3, 3, 2, 1, 1, 2, 9, 5, 2, 3, 5, 5,...
## $ mapcolor13 <dbl> 9, 7, 1, 3, 6, 6, 8, 3, 13, 10, 1, NA, 7, 11, 5, 7, 4, 8...
## $ pop_est <dbl> 103065, 28400000, 12799293, 14436, 3639453, 27153, 83888...
## $ gdp_md_est <dbl> 2258.0, 22270.0, 110300.0, 108.9, 21810.0, 1563.0, 3660....
## $ pop_year <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ lastcensus <dbl> 2010, 1979, 1970, NA, 2001, NA, 1989, 2010, 2010, 2001, ...
## $ gdp_year <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ economy <chr> "6. Developing region", "7. Least developed region", "7....
## $ income_grp <chr> "2. High income: nonOECD", "5. Low income", "3. Upper mi...
## $ wikipedia <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ fips_10 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ iso_a2 <chr> "AW", "AF", "AO", "AI", "AL", "AX", "AD", "AE", "AR", "A...
## $ iso_a3 <chr> "ABW", "AFG", "AGO", "AIA", "ALB", "ALA", "AND", "ARE", ...
## $ iso_n3 <chr> "533", "004", "024", "660", "008", "248", "020", "784", ...
## $ un_a3 <chr> "533", "004", "024", "660", "008", "248", "020", "784", ...
## $ wb_a2 <chr> "AW", "AF", "AO", NA, "AL", NA, "AD", "AE", "AR", "AM", ...
## $ wb_a3 <chr> "ABW", "AFG", "AGO", NA, "ALB", NA, "ADO", "ARE", "ARG",...
## $ woe_id <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ adm0_a3_is <chr> "ABW", "AFG", "AGO", "AIA", "ALB", "ALA", "AND", "ARE", ...
## $ adm0_a3_us <chr> "ABW", "AFG", "AGO", "AIA", "ALB", "ALD", "AND", "ARE", ...
## $ adm0_a3_un <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ adm0_a3_wb <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ continent <chr> "North America", "Asia", "Africa", "North America", "Eur...
## $ region_un <chr> "Americas", "Asia", "Africa", "Americas", "Europe", "Eur...
## $ subregion <chr> "Caribbean", "Southern Asia", "Middle Africa", "Caribbea...
## $ region_wb <chr> "Latin America & Caribbean", "South Asia", "Sub-Saharan ...
## $ name_len <dbl> 5, 11, 6, 8, 7, 5, 7, 20, 9, 7, 14, 10, 23, 22, 17, 9, 7...
## $ long_len <dbl> 5, 11, 6, 8, 7, 13, 7, 20, 9, 7, 14, 10, 27, 35, 19, 9, ...
## $ abbrev_len <dbl> 5, 4, 4, 4, 4, 5, 4, 6, 4, 4, 9, 4, 7, 10, 6, 4, 5, 4, 4...
## $ tiny <dbl> 4, NA, NA, NA, NA, 5, 5, NA, NA, NA, 3, NA, NA, 2, 4, NA...
## $ homepart <dbl> NA, 1, 1, NA, 1, NA, 1, 1, 1, 1, NA, 1, NA, NA, 1, 1, 1,...
## $ geometry <MULTIPOLYGON [arc_degree]> MULTIPOLYGON (((-69.89912 1..., MU...
Možemo videti da se naš prethodni data frame countries može povezati sa data frame-om world preko polja NOC i iso_a3, pa ćemo povezati ove data frame-ove:
allData <- merge(world,countries,by.x="iso_a3",by.y="NOC",all.x = TRUE)
allData %>%
select(-geometry) %>%
DT::datatable()
## Warning in instance$preRenderHook(instance): It seems your data is too big
## for client-side DataTables. You may consider server-side processing: https://
## rstudio.github.io/DT/server.html
NAPOMENA: Većina kodova se poklapa, ali bi trebalo uraditi detaljnu analizu i povezati sve kodove. Takođe, u podacima sa olimpijskih igara postoje zemlje koje više ne postoje (npr. YUGoslavia), pa bi i to trebalo srediti (možda jednog dana :-))
Prikažimo broj poena na mapi:
ggplot(data = allData) +
geom_sf(aes(fill = Points)) +
scale_fill_viridis_c(option = "plasma", trans = "sqrt")
Kako u našem data frame-u imamo i broj stanovnika u zemlji, izračunajmo i prosečan broj poena na 1000 stanovnika.
allData <- mutate(allData,PointsPer1000Capita=Points/pop_est*1000)
allData %>%
select(-geometry) %>%
DT::datatable()
## Warning in instance$preRenderHook(instance): It seems your data is too big
## for client-side DataTables. You may consider server-side processing: https://
## rstudio.github.io/DT/server.html
Na kraju, prikažimo i to na mapi:
ggplot(data = allData) +
geom_sf(aes(fill = PointsPer1000Capita)) +
scale_fill_viridis_c(option = "plasma", trans = "sqrt")